
package com.ibeeking.found.report.rest.service;

import com.alibaba.fastjson.JSONObject;
import com.ibeeking.found.report.service.common.dos.DataSourceDO;
import com.ibeeking.found.report.service.common.param.ConnectionParam;
import com.ibeeking.found.report.service.common.query.DataSourcePageQuery;
import com.ibeeking.found.report.service.common.vo.DataSetVO;
import com.ibeeking.found.report.service.common.vo.DataSourceVO;

import java.util.List;

/**
* @desc DataSourceDO 数据集服务接口
* @author Raod
* @date 2021-03-18 12:09:57.728203200
**/
public interface IDataSourceService extends IBaseService<DataSourcePageQuery, DataSourceDO> {

    /**
     * 获取所有数据源
     * @return
     */
    List<DataSourceDO> queryAllDataSource();

    /**
     * 测试 连接
     * @param connectionParam
     * @return
     */
    Boolean testConnection(ConnectionParam connectionParam);

    /**
     * 执行sql
     * @param dto
     * @return
     */
    List<JSONObject> execute(DataSourceVO dto);

    /**
     * 执行sql,统计数据total
     * @param dataSourceVO
     * @param dto
     * @return
     */
    long total(DataSourceVO dataSourceVO, DataSetVO dto);
}
